.TITLE NLDRV .IDENT /04/ ; ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ; ; VERSION 03 ; ; E. L. BAATZ 22-JUL-76 ; ; MODIFIED BY: ; ; ERIC BAATZ 20-JAN-79 ; EB188 -- CONVERT FOR RSX-11M-PLUS (USE DDT$ MACRO) ; ; ; NULL DEVICE DRIVER. ; ; MACRO LIBRARY CALLS ; ; EQUATED SYMBOLS ; ; LOCAL DATA ; ; NO CONTROLLER IMPURE DATA TABLES (THERE IS NO DEVICE TO ; CAUSE INTERRUPTS) ; ; DRIVER DISPATCH TABLE ; DDT$ NL,,NONE,,,NEW ;+ ; NLDRV AND DRQIO IMPLEMENT A DEVICE NL:, WHICH ACTS AS ; 1) A SINK FOR ALL INFORMATION SEND TO IT (IO.WLB) ; 2) A SOURCE FOR AN INFINITE NUMBER OF END OF FILES (IO.RLB) ; 3) A SOURCE FOR AN INFINITE NUMBER OF NULL RECORDS (IO.RLB) ; IF "IE.EOF" IS CHANGED TO "IS.SUC" ;- ; ; DRQIO (BECAUSE THE UC.QUE BIT IS SET IN THE UCB) SETS THE REGISTERS ; TO THE FOLLOWING: ; ; R1 = ADDRESS OF I/O PACKET ; R4 = ADDRESS OF SCB ; R5 = ADDRESS OF UCB ; ; ONLY TWO FIELDS OF AN I/O PACKET MATTER ; I.FCN+1 = THE I/O FUNCTION CODE. ONLY IO.WLB ; AND IO.RLB MAKE IT TO NLDRV ; I.PRM+4 = IF I.FCN+1 IS IO.WLB, THIS IS THE ; NUMBER OF BYTES THE CALLER WANTS TO WRITE ; NLINI: MOV R1,R3 ;POINT AT PACKET FOR $IOFIN MOV #IS.SUC&377,R0 ;A WRITE ALWAYS SUCCEEDS MOV I.PRM+4(R1),R1 ;SAY EVERYTHING WAS WRITTEN CMPB #IO.WLB/400,I.FCN+1(R3) ;WANTS TO WRITE? BEQ 10$ ;IF EQ YES MOV #IE.EOF&377,R0 ;IT IS A READ CLR R1 ;READ NO CHARACTERS 10$: CALLR $IOFIN ;FINISH OFF PACKET NLCAN: NLOUT: NLPWF: NLKRB: NLUCB: RETURN .END